package com.bajie.bjlisten.mapper;

import com.bajie.bjlisten.entity.BjRole;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Mapper
@Repository
public interface BjRoleMapper {

    //添加角色
    int saveRole(BjRole role);

    //统计角色名字含有某个具体的关键词的数量 map必须含有key值为name
    int countByName(@Param("params") Map<String, Object> params);

    //根据页数查询 map必须含有key值为name
    List<BjRole> findListRole(@Param("params") Map<String, Object> params, @Param("offset") Integer offset,
                              @Param("limit") Integer limit);


    //根据角色ID查询
    BjRole getById(@Param("id") String id);


    //根据角色名称查询
    BjRole getRoleByName(@Param("role_name") String role_name);

    //更新用户角色
    int updateByRole(BjRole role);

    List<BjRole> listRoleByUserId(@Param("user_id") String user_id);

    //根据角色ID删除用户角色关联表对应的角色行
    int deleteRolePermission(@Param("role_id") String role_id);

    //保存菜单和角色关联表
    int saveRolePermission(@Param("role_id") String role_id, @Param("menu_ids") List<String> menu_ids);

    //根据ID删除
    int deleteById(String id);

    //根据ID删除角色用户表
    int deleteRoleUser(String role_id);


}
